<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one or more
  ~ contributor license agreements.  See the NOTICE file distributed with
  ~ this work for additional information regarding copyright ownership.
  ~ The ASF licenses this file to You under the Apache License, Version 2.0
  ~ (the "License"); you may not use this file except in compliance with
  ~ the License.  You may obtain a copy of the License at
  ~
  ~    http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  ~
  -->

<sp-auth-box [linkSettings]="loginSettings.linkSettings" *ngIf="configReady">
    <div fxFlex="100" fxLayout="column" fxLayoutAlign="center start">
        <h1>Register</h1>
    </div>
    <div fxLayout="column" fxFlex="100">
        <form [formGroup]="parentForm">
            <div fxLayout="column">
                <mat-form-field color="accent">
                    <mat-label>Email</mat-label>
                    <input formControlName="username" fxFlex matInput />
                    <mat-error *ngIf="parentForm.controls.username.errors"
                        >Must be an email address.</mat-error
                    >
                </mat-form-field>
                <mat-form-field color="accent">
                    <mat-label>Initial password</mat-label>
                    <input
                        formControlName="password"
                        fxFlex
                        type="password"
                        matInput
                        required
                    />
                </mat-form-field>
                <mat-form-field color="accent">
                    <mat-label>Repeat password</mat-label>
                    <input
                        formControlName="repeatPassword"
                        fxFlex
                        type="password"
                        matInput
                        required
                    />
                </mat-form-field>
                <mat-error *ngIf="parentForm.hasError('notMatching')"
                    >Passwords do not match.</mat-error
                >
                <div class="form-actions" style="margin-top: 20px">
                    <button
                        mat-button
                        mat-raised-button
                        color="accent"
                        (click)="registerUser()"
                        [disabled]="!parentForm.valid"
                        *ngIf="!registrationSuccess"
                    >
                        <span>Register</span>
                    </button>
                    <mat-spinner
                        [mode]="'indeterminate'"
                        color="accent"
                        [diameter]="20"
                        *ngIf="registrationInProcess"
                        style="margin-top: 10px"
                    ></mat-spinner>
                    <div class="md-warn" *ngIf="registrationError">
                        <h5 class="info-box register-error">
                            {{ registrationError }}
                        </h5>
                    </div>
                    <div class="md-success" *ngIf="registrationSuccess">
                        <h5 class="info-box register-success">
                            We've sent out a confirmation mail to this address.
                        </h5>
                    </div>
                    <div class="mt-10">
                        <a [routerLink]="['/login']">Go to login page</a>
                    </div>
                </div>
            </div>
        </form>
    </div>
</sp-auth-box>
